package cn.com.header.web.service.sys;


import cn.com.header.core.util.Page;
import cn.com.header.web.model.sys.User;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * 用户 业务 接口
 * 
 * @author StarZou
 * @since 2014年7月5日 上午11:53:33
 **/
public interface UserService {

    /**
     * 用户验证
     * 
     * @param user
     * @return
     */
    User authentication(User user);

    /**
     * 根据用户名查询用户
     * 
     * @param username
     * @return
     */
    User selectByUsername(String username);
    Page selectByExampleAndPage(Page page);

    /**
     * 保存
     * @param user
     */
    void saveUser(User user);

     void deleteUser(Long id);

    User get(Long id);

    /**
     * 编辑
     * @param user
     * @throws Exception
     */
    public void update(User user) throws Exception;

    /**
     * 多条件查询
     * @param map
     * @return
     * @throws Exception
     */
    public User findAllByParams(Map<String, Object> map) throws Exception;


    Boolean isNumberUnique(@Param("number") String number, @Param("id")Long id);

    Page findByRoleId(Page page);

    public boolean check(Map<String, Object> map) throws Exception;

    /**
     * 根据汉子生成拼音
     */
    public String generateUserName(String name);

    User findByRelationUserId(String relationUserId);

}
